﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace QLSV
{
    public partial class ThemGiaoVien : Form
    {
        public ThemGiaoVien()
        {
            InitializeComponent();
        }

        private SqlConnection Con = new SqlConnection();
        private DataTable Dt = new DataTable("GiaoVien");
        private DataTable DtGV = new DataTable("GiaoVien");
        private SqlDataAdapter Da = new SqlDataAdapter();
        private Boolean Kt;

        private void Connect()
        {
            String Cn = "Data Source=LENOVOY510\\SQLEXPRESS;Initial Catalog=QLSV;Integrated Security=True";
            try
            {
                Con = new SqlConnection(Cn);
                Con.Open();
            }
            catch (Exception Ex)
            {
                MessageBox.Show("Không Thể Kết Nối Đến Cơ Sở Dữ Liệu!", "Lỗi!", MessageBoxButtons.OK, MessageBoxIcon.Error);

            }
        }

        private void DisConnect()
        {
            Con.Close();
            Con.Dispose();
            Con = null;
        }

        private void GetData()
        {
            SqlCommand Com = new SqlCommand();
            Com.Connection = Con;
            Com.CommandType = CommandType.Text;
            Com.CommandText = "Select * from GiaoVien";
            Da.SelectCommand = Com;
            Da.Fill(DtGV);
        }

        private bool KiemTra()
        {
            Kt = true;

            if (txtmgv.Text == "")
            {
                MessageBox.Show("Bạn Chưa Nhập Mã Giáo Viên!", "Thông Báo!", MessageBoxButtons.OK);
                Kt = false;
            }
            else if (txth.Text == "")
            {
                MessageBox.Show("Bạn Chưa Nhập Họ!", "Thông Báo!", MessageBoxButtons.OK);
                Kt = false;
            }
            else if (txtt.Text == "")
            {
                MessageBox.Show("Bạn Chưa Nhập Tên!", "Thông Báo!", MessageBoxButtons.OK);
                Kt = false;
            }
            else if (dtpns.Value == null)
            {
                MessageBox.Show("Bạn Chưa Nhập Ngày Sinh!", "Thông Báo!", MessageBoxButtons.OK);
                Kt = false;
            }

            return Kt;
        }

        private void clickthoat_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("Bạn Có Muốn Thoát Không?", "Thoát!", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                Close();
                Dispose();
                DisConnect();
                ThongTinGiaoVien TTGV = new ThongTinGiaoVien();
                TTGV.Show();
            }    
        }

        private void clickhuy_Click(object sender, EventArgs e)
        {
            txtmgv.Text = "";
            txth.Text = "";
            txtt.Text = "";
            cbgt.Text = "";
            dtpns.Text = "";
            txtdc.Text = "";
            txtqq.Text = "";
            txtsdt.Text = "";
        }

        private void ThemGiaoVien_Load(object sender, EventArgs e)
        {
            Connect();
            GetData();
        }

        private void clickkiemtra_Click(object sender, EventArgs e)
        {
            SqlCommand Com = new SqlCommand();
            Com.Connection = Con;
            Com.CommandType = CommandType.Text;

            if (txtmgv.Text != "")
            {
                Com.CommandText = @"Select MaGV
                                    from GiaoVien
                                    where MaGV = @MaGV";
                Com.Parameters.Add("@MaGV", SqlDbType.NVarChar, 10).Value = txtmgv.Text;
                Da.SelectCommand = Com;
                Da.Fill(Dt);
                if (Dt.Rows.Count > 0)
                {
                    MessageBox.Show("Đã Tồn Tại Mã Giáo Viên Này!", "Thông Báo!", MessageBoxButtons.OK);
                }
                else
                {
                    MessageBox.Show("Có Thể Thêm Mã Giáo Viên Này!", "Thông Báo!", MessageBoxButtons.OK);
                }
            }
            else
            {
                MessageBox.Show("Bạn Chưa Nhập Mã Giáo Viên!", "Thông Báo!", MessageBoxButtons.OK);
            }

            Dt.Clear();
        }

        private void clickluu_Click(object sender, EventArgs e)
        {
            KiemTra();
            if (Kt == true)
            {
                DataRow DtR = DtGV.NewRow();
                DtR["MaGV"] = txtmgv.Text;
                DtR["Ho"] = txth.Text;
                DtR["Ten"] = txtt.Text;
                if (cbgt.Text == "Nam")
                    DtR["GioiTinh"] = "Nam";
                else if (cbgt.Text == "Nữ")
                    DtR["GioiTinh"] = "Nữ";
                DtR["NgaySinh"] = dtpns.Value;
                DtR["DiaChi"] = txtdc.Text;
                DtR["QueQuan"] = txtqq.Text;
                DtR["SDT"] = txtsdt.Text;
                DtGV.Rows.Add(DtR);
                SqlCommand ComInsert = new SqlCommand();
                ComInsert.Connection = Con;
                ComInsert.CommandType = CommandType.Text;
                ComInsert.CommandText = @"Insert GiaoVien (MaGV, Ho, Ten, GioiTinh, NgaySinh, DiaChi, QueQuan, SDT)
                                          Values (@MaGV, @Ho, @Ten, @GioiTinh, @NgaySinh, @DiaChi, @QueQuan, @SDT)";
                ComInsert.Parameters.Add("@MaGV", SqlDbType.NChar, 10, "MaGV");
                ComInsert.Parameters.Add("@Ho", SqlDbType.NVarChar, 30, "Ho");
                ComInsert.Parameters.Add("@Ten", SqlDbType.NVarChar, 10, "Ten");
                ComInsert.Parameters.Add("@GioiTinh", SqlDbType.NVarChar, 10, "GioiTinh");
                ComInsert.Parameters.Add("@NgaySinh", SqlDbType.Date, 50, "NgaySinh");
                ComInsert.Parameters.Add("@DiaChi", SqlDbType.NVarChar, 50, "DiaChi");
                ComInsert.Parameters.Add("@QueQuan", SqlDbType.NVarChar, 30, "QueQuan");
                ComInsert.Parameters.Add("@SDT", SqlDbType.NVarChar, 20, "SDT");
                Da.InsertCommand = ComInsert;
                Da.Update(DtGV);

                MessageBox.Show("Thêm Thành Công!", "Thông Báo!", MessageBoxButtons.OK);
                Close();
                Dispose();
                DisConnect();

                ThongTinGiaoVien TTGV = new ThongTinGiaoVien();
                TTGV.Show();
            }
        }
    }
}
